package com.party.course.service.impl;

import java.util.List;

import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import cn.hutool.core.date.DateUtil;
import com.party.course.domain.CoachInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.party.course.mapper.NoticeInfoMapper;
import com.party.course.domain.NoticeInfo;
import com.party.course.service.INoticeInfoService;

import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import com.party.common.utils.SecurityUtils;

/**
 * 通知信息Service业务层处理
 *
 * @author songkaiyue
 * @date 2025-07-04
 */
@Service
public class NoticeInfoServiceImpl extends ServiceImpl<NoticeInfoMapper, NoticeInfo> implements INoticeInfoService {
    @Autowired
    private NoticeInfoMapper noticeInfoMapper;

    /**
     * 查询通知信息
     *
     * @param id 通知信息主键
     * @return 通知信息
     */
    @Override
    public NoticeInfo view(String id) {
        return noticeInfoMapper.selectNoticeInfoById(id);
    }

    /**
     * 查询通知信息列表
     *
     * @param noticeInfo 通知信息
     * @return 通知信息
     */
    @Override
    public List<NoticeInfo> findList(NoticeInfo noticeInfo) {
        return noticeInfoMapper.selectNoticeInfoList(noticeInfo);
    }

    /**
     * 新增通知信息
     *
     * @param noticeInfo 通知信息
     * @return 结果
     */
    @Override
    public int add(NoticeInfo noticeInfo) {
        noticeInfo.setId(IdUtil.simpleUUID());
        noticeInfo.setDelFlag("0");
        return noticeInfoMapper.insert(noticeInfo);
    }

    /**
     * 修改通知信息
     *
     * @param noticeInfo 通知信息
     * @return 结果
     */
    @Override
    public int updateEntity(NoticeInfo noticeInfo) {
        noticeInfo.setUpdateTime(DateUtil.date());
        return noticeInfoMapper.updateById(noticeInfo);
    }

    /**
     * 批量删除通知信息
     *
     * @param ids 需要删除的通知信息主键
     * @return 结果
     */
    @Override
    public int deleteIds(List<String> ids) {
        return noticeInfoMapper.deleteNoticeInfoByIds(ids);
    }

    /**
     * 删除通知信息信息
     *
     * @param id 通知信息主键
     * @return 结果
     */
    @Override
    public int deleteById(String id) {
        return noticeInfoMapper.deleteNoticeInfoById(id);
    }
}
